/**
 * 
 */
package design_pattern.template;

/**
 * @author linzq
 * 
 */
public abstract class TemplateAbstract {

  /**
   * 模版方法模式中的模版方法（重要）
   */
  public void templateMethod() {
    operation1();
    operation2();
    operation3();
  }

  /**
   * 抽象类的抽象访法
   */
  protected abstract void operation1();

  protected abstract void operation2();

  /**
   * 基本方法，已经实现
   */
  private final void operation3() {
    System.out.println("操作3");
  }
}
